/**
 * Created by wolf on 16-4-25.
 */

/**
 * 打印log
 * @type {number}
 */
var logId = 0, logger = function (message) {
    if (config.debug) {
        if (typeof message === "string")
            console.log(String(++logId) + ". " + message.toLowerCase());
        else
            console.log(message);
    }
};
var config = {
    lib: "/frame/js/lib/",
    scripts: "/frame/js/scripts/",
    css: "/frame/style/css/",
    debug: true
};
var initial = {
    /**
     * 加载公用资源
     */
    "basic": function() {
        var _config = {
            "baseUrl": "/",
            "paths": {
                "jquery": config.lib + "jquery-2.2.1.min",
                "mousewheel": config.lib + "jquery.mousewheel.min",
                "core": config.lib + "core",
                "lang": config.scripts + "zh"
            },
            "map": {
                '*': {
                    'css': config.lib + 'css.min.js'
                }
            },
            "shim": {
                "core": {
                    "deps": [
                        "jquery",
                        "css!" + config.css + "font-awasome"
                    ]
                },
                "mousewheel": {
                    "deps": ["jquery"]
                }
            },
            "waitSeconds": 15
        };
        require.config(_config);
        var dep = ["mousewheel", "core", "lang"];
        require(dep, initial.module, initial.fail);
    },
    /**
     * 加载页面模块
     */
    "module": function () {
        logger("公共资源加载完成...");
        var module = $("#require").attr("data-module").split(",");
        if (module && module.length > 0) {
            var _config = {
                "paths": {},
                "shim": {},
                "waitSeconds": 15
            };
            $.each(module, function (i ,m) {
                _config.paths[m] = config.scripts + m;
                _config.shim[m] = {
                    "deps": ["css!" + config.css + m]
                };
            });
            require.config(_config);
        }
        require(module, function () {
            logger("页面初始化完成...");
            //$("body").installLanguage();
            //$('img').error(function(){
            //    $(this).attr('src', 'missing.png');
            //});

        }, initial.fail);
    },
    /**
     * 初始化失败
     * @param err
     */
    "fail": function (err) {
        logger(err);
    }
};
initial.basic();






//var comPath = {
//    lib: "/frame/js/lib/",
//    scripts: "/frame/js/scripts/",
//    css: "/frame/style/css/"
//};
//
//var config = {
//    "baseUrl": "/",
//    "paths": {
//        "jquery": comPath.lib + "jquery-2.2.1.min",
//        "mousewheel": comPath.lib + "jquery.mousewheel.min",
//        "core": comPath.lib + "core",
//        "lang": comPath.scripts + "zh"
//    },
//    "map": {
//        '*': {
//            'css': comPath.lib + 'css.min.js'
//        }
//    },
//    "shim": {
//        "core": {
//            "deps": [
//                "jquery",
//                "css!" + comPath.css + "font-awesome.min"
//                // "css!" + comPath.css + "com"
//            ]
//        },
//        "mousewheel": {
//            "deps": ["jquery"]
//        }
//    },
//    "waitSeconds": 15
//};
//require.config(config);
//
//var _module = document.getElementById("require").getAttribute("data-module").split(",");
//if (_module && _module.length > 0) {
//    var str = "";
//    for(var i = 0, len = _module.length; i < len; i++) {
//        str += "'" + comPath.scripts + _module[i] + ".js',";
//    }
//    str = str.slice(0, str.length - 1);
//    var ele = document.createElement("script");
//    ele.type = 'text/javascript';
//    ele.innerHTML = "require(["+ str +"])";
//    document.getElementsByTagName("body")[0].appendChild(ele);
//}